package com.xtc.ql00045.frame1.untils;


import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.ArrayList;

/**
 * Gson解析Json工具类
 *
 * @author szy
 */

public class JsonUtil {
    /**
     * 泛型
     * @param jsonData json数据
     * @param type 实体类
     * @param <T> 实体类
     * @return result 对象
     */
    public static <T> T parseJsonWithGson(String jsonData, Class<T> type){
        T result = null;
        Gson gson = new Gson();
        result = gson.fromJson(jsonData,type);
        return result;
    }

    /**
     * @param json
     * @param clazz
     * @return
     */
    public static <T> ArrayList<T> jsonToArrayList(String json, Class<T> clazz)
    {
        Type type = new TypeToken<ArrayList<JsonObject>>()
        {}.getType();
        ArrayList<JsonObject> jsonObjects = new Gson().fromJson(json, type);

        ArrayList<T> arrayList = new ArrayList<>();
        for (JsonObject jsonObject : jsonObjects)
        {
            arrayList.add(new Gson().fromJson(jsonObject, clazz));
        }
        return arrayList;
    }


}
